package com.sxj.corejava.code08_常用类.String类;

/**
 * @author 石小俊
 * @date 2025年01月11日
 */
public class Test08_不变性 {

    public static void main(String[] args) {
        // 在堆中开辟了一块空间,用于存储数据admin
        String s = new String("admin");

        // 当重新赋值时,并不是修改堆中空间的数据
        // 而是重新开辟了一块空间,该空间中的数据为jack,而原来的空间数据不变
        // 此时栈中变量s所对应的空间地址指向的是新开辟的jack所对应的堆中空间地址
        // 当gc执行垃圾回收的时候,由于之前admin的空间已经没有被引用了,则会被回收
        // 在gc回收之前,当前堆中存在两块空间
        s = new String("jack");
    }

}
